#include "joystick.h"
bool CJoystick::init(int devicen)
{

    if (SDL_NumJoysticks() < 1) 
    {
        printf ("Error, no hay joysticks conectados\n");
        iniciado = false;
        return false;
    }
    stick = SDL_JoystickOpen( devicen ); 
    if (stick == NULL) 
    {
        printf ("Error al inicializar el controlador\n");
        iniciado=false;
        return false;
    }
    printf ("No. de dispositivos:%i.\n",SDL_NumJoysticks());
    printf ("Joystick iniciado.\n");
    return true;        
}
/* Actualiza el estado de los ejes y botones */
void CJoystick::update(bool multi)
{        
    if (multi==false)
    {
        left=false;
        right=false;
        up=false;
        down=false;
    }
    b0=false;
    while (SDL_PollEvent(&event))
    {
        
        switch (event.type)
        {
            /****** ejes ******/
            case  SDL_JOYAXISMOTION:
            if( event.jaxis.axis == 0 )  // eje x
            { 
                if (event.jaxis.value<-8000) left=true;else left=false;
                if (event.jaxis.value>8000)  right=true;else right=false;
            } 
            if( event.jaxis.axis == 1 )  // eje y
            { 
                if (event.jaxis.value<-3200) up=true;else up=false;
                if (event.jaxis.value>3200)  down=true;else down=false;
            }
            break;
            /***** botones *****/
            case SDL_JOYBUTTONDOWN:
            if ( event.jbutton.button == 0 ) b0=true;
            break; 
        } // Switch end
    } // while end 
}
